import router from '@/router'
import store from '@/store'

// 白名单 用户不登录，没有任何权限的时候也可以进入的页面
// 方便以后添加404页面等
const whiteList = ['/login']

/**
 * @msg: 路由前置守卫
 * @param {*}
 * @return {*}
 */
router.beforeEach(async (to, from, next) => {
  if (store.getters.token) {
    // getters快捷访问
    if (to.path === '/login') {
      // 2.用户登录后，token 未过期之前，不允许进入 login 页面
      next('/')
    } else {
      // 判断用户资料是否存在，如果不存在则获取用户信息
      // 若不存在用户信息，则需要获取用户信息
      if (!store.getters.hasUserInfo) {
        // 触发获取用户信息的 action
        await store.dispatch('user/getUserInfo')
      }
      next()
    }
  } else {
    // 1.当用户未登陆时，不允许进入除 login 之外的其他页面。
    if (whiteList.indexOf(to.path) > -1) {
      next()
    } else {
      next('/login')
    }
  }
})
